// 页面: 工作台-租赁管理-收费: 详情
const $app = getApp()
Page({
  data: {
    Auth: {}, // 权限数据(勿删)
    userInfo: $app.userInfo || {}, // 用户信息
    display: 0, // 当前显示内容
    // ===== 参数 =====
    param: {
      id: null, // id
      pageNo: 1, // 第几页
      pageSize: 10 // 一页几条数据
    },
    listData: {
      display: [{ id: 0, name: '基本信息'}, { id: 1, name: '收费记录'}],
      overDayStatus: [{ id: 0, name: '已逾期'}, { id: 1, name: '未逾期'}]
    },
    // ===== 基础信息 相关数据 =====
    baseData: {}, // 基础信息
    baseInfo: [{ // 配置信息
      title: '收费信息',
      data: {
        contractName: { name: '合同名称' },
        businessName: { name: '租户名称' },
        endTime: { name: '到期时间' },
        paymentBatch: { name: '租赁周期' },
        paymentTime: { name: '截止时间' },
        paymentMoney: { name: '应收金额' },
        truePay: { name: '实付金额' },
        overDayStatus: { type: 'listData', name: '是否逾期' }
      }
    }],
    // ===== 收费记录 相关数据 =====
    total: 0,
    billData: [], // 账单明细
    refreshing: false, // 是否正在刷新中
    loading: false, // 是否正在加载中
    backTop: false, // 滚动条回到顶部(只要改变值就回到顶部)
    billInfo: {
      chargeTime: { name: '收费时间' },
      operatorName: { name: '经办人' },
      loginName: { name: '填写人' },
      chargeMoney: { name: '收缴金额', after: ' 元' }
    }
  },
  model (e) { $app.$common_wx.model(e, this) }, // 双向绑定
  // ========== 生命周期: 页面初次渲染完成 ==========
  onReady: function () {},
  // ========== 生命周期: 页面显示 ==========
  onShow: function () {},
  // ========== 生命周期: 页面隐藏 ==========
  onHide: function () {},
  // ========== 生命周期: 页面卸载 ==========
  onUnload: function () {},
  // ========== 生命周期: 页面加载 ==========
  onLoad: function (options) {
    console.log(options)
    if (!options.id) return
    this.setData({
      userInfo: $app.userInfo,
      ['param.id']: options.id
    })
    // ========== 获取权限数据(勿删) ==========
    $app.$common_base.getAuth('work_rent_charge').then((Auth) => { 
      this.setData({ Auth })
    })
    // ========== 获取权限数据(勿删) end ==========
    this.getBaseData() // 获取基本信息
  },
  // ========== '当前显示内容'改变时 ==========
  displayChange () {
    if (this.data.display === 0) {
      this.getBaseData() // 获取基本信息
    } else {
      this.getBillData() // 获取收费记录
    }
  },
  // ========== 获取基本信息 ==========
  getBaseData () {
    if (this.data.baseData.id) return
    $app.$common.openLoading() // 开启加载
    $app.$api.contractPay.selectContractPayDetail(this.data.param).then(({ data }) => {
      console.log('api-基本信息', data)
      let newData = data || {}
      this.setData({ baseData: newData })
      $app.$common.closeLoading() // 关闭加载
    }).catch(({ type, res }) => {})
  },
  // ========== 获取收费记录 ==========
  getBillData (RAndL) {
    const dataKey = 'billData'
    if (!RAndL) {
      $app.$common.openLoading() // 开启加载
      this.setData({ ['param.pageNo']: 1 })
    }
    $app.$api.contractPay.selectContractCharge({
      '*': true,
      '/': true,
      ...this.data.param
    }).then(({ data, count }) => {
      console.log('api-收费明细', data, count)
      let newData = data || []
      for (const i in newData) {
        const b = newData[i]
        const arr = this.data.listData.paymentType
        b.paymentType = $app.$common.arrFindEl(arr, 'id', b.paymentType, 'name')
      }
      const total = count || 0
      if (RAndL === 'refresh') { // 刷新
        this.setData({ refreshing: false })
      } else if (RAndL === 'load') { // 加载
        newData = this.data[dataKey].concat(newData)
        this.setData({ loading: false })
      } else {
        this.setData({ backTop: !this.data.backTop })
      }
      this.setData({ [dataKey]: newData, total })
      $app.$common.closeLoading() // 关闭加载
    }).catch(({ type, res }) => {
      console.log('api-收费明细', type, res)
      let newData = []
      let total = 0
      if (RAndL === 'refresh') { // 刷新
        this.setData({ refreshing: false })
      } else if (RAndL === 'load') { // 加载
        newData = this.data[dataKey]
        total = this.data.total
        const pageNo = this.data.param.pageNo - 1 // 页数
        this.setData({ loading: false, pageNo: pageNo })
      } else {
        this.setData({ backTop: !this.data.backTop })
      }
      this.setData({ [dataKey]: newData, total })
      $app.$common.closeLoading() // 关闭加载
      $app.$common.message('数据获取失败', 'error') // 提示信息
    })
  },
  // ========== 刷新 ==========
  refresh () {
    this.setData({ ['param.pageNo']: 1 })
    this.getBillData('refresh') // 获取数据
  },
  // ========== 加载 ==========
  load () {
    const dataKey = 'billData'
    if (this.data[dataKey].length >= this.data.total) {
      this.setData({ loading: false })
      return
    }
    const pageNo = this.data.param.pageNo + 1
    this.setData({ ['param.pageNo']: pageNo })
    this.getBillData('load') // 获取数据
  },
  // ========== 新增收费记录 ==========
  add () {
    const b = this.data.baseData
    const path = '/pages/home_workbench/work_rent_charge-addRecord/work_rent_charge-addRecord'
    wx.navigateTo({ url: `${path}?id=${b.id}&truePay=${b.truePay}&paymentMoney=${b.paymentMoney}` })
  }
})